package com.example.test_event_and_callback.infras.async.ano;

import com.example.test_event_and_callback.infras.async.MethodCallType;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 注解，用来标注异步数据需求者，可以是DTO，也可以是聚合类
 * 参数为方法缓存策略，可选句柄或反射或直接调用。
 * 若加了此注解的类继承了Demander类，强制使用该类的setParam方法,方法此参数不生效
 */
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
public @interface AsyncDataDemander {
    MethodCallType value() default MethodCallType.JAVA_REFLECTION;
}
